/**
 *
 * @param {Number | String} value 设备的状态值
 * @returns {String} 设备状态的文字描述
 */
const statusTextConvert = (
  status: number,
  isOnline: boolean
): string | undefined => {
  if (isOnline) {
    if (status == 0) {
      return '待机中';
    } else if (status === 1) {
      return '工作中';
    } else if (status === 2) {
      return '预约中';
    } else if (status === 3) {
      return '保温中';
    }
  } else {
    return '设备离线';
  }
};

/**
 *
 * @param {Number | String} value 设备的状态值
 * @returns {String} 设备状态的文字描述
 */
const runningTextConvert = (value: number): string => {
  // 1=离线 2=待机 3=烹饪中 4=保温中 5=预约中
  const data: { [key: string]: string } = {
    1: '工作',
    2: '预约',
    3: '保温'
  };
  return data[value];
};

// 故障标题
const faultTextConvert = (value: number): string => {
  // 1=离线 2=待机 3=烹饪中 4=保温中 5=预约中
  const data: { [key: string]: string } = {
    1: '底部NTC开路报警',
    2: '顶部NTC开路报警',
    3: '底部NTC短路报警',
    4: '顶部NTC短路报警',
    5: '干烧报警'
  };
  return data[value];
};
// 故障详情
const faultTextdescription = (value: number): string => {
  // 1=离线 2=待机 3=烹饪中 4=保温中 5=预约中
  const data: { [key: string]: string } = {
    1: '送指定维修点维修',
    2: '送指定维修点维修',
    3: '出现“E3”后要拔出电源插头，待冷却后再上电，如不能正常工作，送维修点维修',
    4: '送指定维修点维修',
    5: '送指定维修点维修'
  };
  return data[value];
};

/**
 *
 * @param {Number} status 运行状态 0-待机 1-运行中 2-保温中 3-预约中
 * @param {Number } _preTime 预约
 * @returns {String} 设备状态的文字描述
 */
const btnFitersText = (status: number, appointment: number): string => {
  if (status === 1) {
    return '结束运行';
  } else if (status == 2) {
    return '取消预约';
  } else if (status == 3) {
    return '取消保温';
  } else {
    if (appointment) {
      return '开始预约';
    } else {
      return '开始运行';
    }
  }
};

const workTimeMode = (value: number): number => {
  // 1-保温 2 - 快煮饭;  3 - 精煮饭 4 - 煮粥; 5 - 煲汤; 6 - 卤煮;  7 - 热饭;
  const data: { [key: number]: number } = {
    1: 0,
    2: 0,
    3: 0,
    4: 90,
    5: 90,
    6: 120,
    7: 0
  };
  return data[value];
};

export {
  workTimeMode,
  btnFitersText,
  statusTextConvert,
  runningTextConvert,
  faultTextConvert,
  faultTextdescription
};
